package com.youlai.boot.system.converter;

import com.youlai.boot.system.model.entity.DailySalesReport;
import com.youlai.boot.system.model.form.DailySalesReportForm;
import com.youlai.boot.system.model.vo.DailySalesReportVO;
import com.youlai.boot.system.model.dto.DailySalesReportExcelDTO;

import java.util.List;

/**
 * TP运营日报对象转换器
 *
 * @author xiheforever
 * @since 2025-06-03
 */
public interface DailySalesReportConverter {

    DailySalesReportForm toForm(DailySalesReport entity);

    DailySalesReport toEntity(DailySalesReportForm formData);

    DailySalesReportVO toVO(DailySalesReport entity);

    /**
     * 实体列表转换为Excel DTO列表
     *
     * @param entities 实体列表
     * @return Excel DTO列表
     */
    List<DailySalesReportExcelDTO> entity2ExcelDTO(List<DailySalesReport> entities);

    /**
     * 实体转换为Excel DTO
     *
     * @param entity 实体
     * @return Excel DTO
     */
    DailySalesReportExcelDTO entity2ExcelDTO(DailySalesReport entity);

    /**
     * Excel DTO转换为实体
     *
     * @param excelDTO Excel DTO
     * @return 实体
     */
    DailySalesReport excelDTO2Entity(DailySalesReportExcelDTO excelDTO);

    /**
     * Excel DTO列表转换为实体列表
     *
     * @param excelDTOs Excel DTO列表
     * @return 实体列表
     */
    List<DailySalesReport> excelDTO2Entity(List<DailySalesReportExcelDTO> excelDTOs);
}